home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 2010 April / PCWorld0410.iso / hity wydania / Ubuntu 9.10 PL / karmelkowy-koliberek-desktop-9.10-i386-PL.iso / casper / filesystem.squashfs / var / lib / dpkg / info / libkpathsea4.preinst < prev    next >
Text File  |  2009-10-07  |  5KB  |  164 lines

  1. #!/bin/sh -e
  2. # common.functions.preinst start
  3. # $Id: common.functions.preinst 3435 2008-06-23 19:54:16Z frank $
  4.  
  5. dpkg_md5sum()
  6. {
  7.     conffile="$1"
  8.     package="$2"
  9.     md5sum=$(dpkg-query -W -f='${Conffiles}' "$package" \
  10.             | grep -F " $conffile " | cut -d ' ' -f 3)
  11.     if [ -z "$md5sum" ]; then
  12.         echo "$conffile: md5sum not known." >&2
  13.         echo "It seems that this file is not handled by dpkg conffiles." >&2
  14.         # don't exit but return empty md5sum
  15.         md5sum=""
  16.         # exit 1
  17.     fi
  18.     echo $md5sum
  19. }
  20.  
  21. check_move ()
  22. {
  23.     dodelete="$1"
  24.     orig="$2"
  25.     local package
  26.     package="$3"
  27.     new="$4"
  28.     version="$5"
  29.     if [ -r "$orig" ] ; then
  30.       mdorig=$(dpkg_md5sum "$orig" "$package")
  31.       if [ $(md5sum "$orig" | cut -f 1 -d ' ') = "$mdorig" ] ; then
  32.         rm "$orig"
  33.       else
  34.         mkdir -p $(dirname "$new")
  35.         mv "$orig" "$new".preinst-copy
  36.       fi
  37.     else
  38.       if [ -n "$version" ]; then
  39.     # there is a previous version, we are actually upgrading 
  40.         # (or reinstalling)
  41.         # in case we handle a foreign conffile (different package) $dodelete
  42.         # can be set to 0 (or != 1) in which case the .preinst-deleted file
  43.         # will not be created.
  44.         if [ "$dodelete" = 1 ] ; then
  45.           mkdir -p $(dirname "$new")
  46.           touch $new.preinst-deleted
  47.         fi
  48.       fi
  49.     fi
  50. }
  51.  
  52. #
  53. # handle_config_file_preinst/postinst/prerm/postrm
  54. # handle those config files which are left over from old texlive and
  55. # tetex installations
  56. handle_config_file_preinst ()
  57. {
  58.     cfgfile="$1"
  59.     action="$2"
  60.     version="$3"
  61.     upgrade_needed=false
  62.     case "$action" in
  63.       install|upgrade)
  64.     if [ -n "$version" ] && dpkg --compare-versions "$version" ge 2007; then
  65.       return 0
  66.     fi
  67.     ;;
  68.       *)
  69.     return 0
  70.     ;;
  71.     esac
  72.     
  73.     conf_relpath=${cfgfile#/etc/texmf/}
  74.     conf_oldpath="/etc/texmf/texlive/$conf_relpath"
  75.     # default package is texlive-base-bin
  76.     package=texlive-base-bin
  77.     case "$cfgfile" in 
  78.         /etc/texmf/dvips/config/*)
  79.             # special case for dvips config
  80.             conf_oldpath="/etc/texmf/texlive/dvips/${conf_oldpath#/etc/texmf/texlive/dvips/config/}"
  81.             ;;
  82.         # files which were only present in tetex
  83.         /etc/texmf/texdoctk/texdoctk.dat)
  84.             package=tetex-base
  85.             conf_oldpath="/etc/texdoctk/texdoctk.dat"
  86.             ;;
  87.         # symlink target had a different name
  88.         /etc/texmf/dvipdfm/config/config)
  89.             conf_oldpath="/etc/texmf/texlive/dvipdfm.cfg"
  90.             ;;
  91.         # for xdvi.cfg we first want to move tetex files, and later texlives
  92.         /etc/texmf/xdvi/xdvi.cfg)
  93.             # tetex version
  94.             # it could either be deleted, or tetex was never installed.
  95.             # We do not want to create .preinst-deleted, so we call
  96.             # check_move with first argument 0 which means that the
  97.             # preinst-deleted file will not be created
  98.             check_move 0 /etc/texmf/xdvi.cfg tetex-bin /etc/texmf/xdvi/xdvi.cfg $version
  99.             # now set the conf_oldpath to the texlive version
  100.             conf_oldpath="/etc/texmf/texlive/xdvi.cfg"
  101.             ;;   
  102.     esac
  103.     check_move 1 $conf_oldpath $package $cfgfile $version
  104. }
  105.  
  106. resurrect_conffile_sid(){
  107.   cfgfile="$1"
  108.   package="$2"
  109.   action="$3"
  110.   version="$4"
  111.   template_source="/usr/share/$package"
  112.   basefile=$(basename $cfgfile)
  113.   dirname=$(dirname $cfgfile)
  114.  
  115.   # continue only in the following cases:
  116.   # - we are upgrading
  117.   # - at least from version 2007 (not etch=2005)
  118.   case "$action" in
  119.     upgrade)
  120.       if [ -n "$version" ] && dpkg --compare-versions "$version" ge 2007; then
  121.         : do nothing
  122.       else
  123.         return 0
  124.       fi
  125.     ;;
  126.     *)
  127.       return 0
  128.     ;;
  129.   esac
  130.  
  131.   if ! [ -f "$cfgfile" ]; then
  132.     mkdir -p $dirname
  133.     echo "Reinstalling deleted mandatory conffile $basefile" >&2
  134.     cp $template_source/$basefile $cfgfile
  135.   fi
  136. }
  137.  
  138. # common.functions.preinst end
  139. # Local Variables:
  140. # mode: shell-script
  141. # End:
  142. # vim:set expandtab: #
  143. # preinst.pre
  144. # $Id: preinst.pre 2583 2007-03-15 20:12:56Z frank $
  145. # we want to be sure that experimental versions are purged before
  146. # the first unstable is installed
  147. # furthermore check that we are at least at version 2005 for the 
  148. # temporary tetex packages upgrades
  149. case "$1" in
  150.   upgrade|install)
  151.     old_version=$2
  152.     if [ -n "$old_version" ] && dpkg --compare-versions "$old_version" lt 2005-2 && dpkg --compare-versions "$old_version" gt 2005 ; then
  153.       echo "Upgrade from experimental versions are not supported!" >&2
  154.       echo "Please purge all texlive packages before installation." >&2
  155.       exit 1
  156.     fi
  157.     ;;
  158. esac
  159.  
  160. # end preinst.pre
  161.  
  162.  
  163. exit 0
  164.